package com.atguigu.security.custom;

import com.atguigu.common.utils.MD5;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Component;

/**
 * ClassName: CustomMd5PasswordEncoder
 * Package: com.atguigu.security.config.custom
 *
 * @Author: lmf
 * @Create: 2024/1/21 11:12
 * @Version: 1.0
 * Description:加密器PasswordEncoder
 */
@Component // 交给sprint 管理
public class CustomMd5PasswordEncoder implements PasswordEncoder {
    /**
     * 因数据库密码加过密，，在此对登录密码进行加密用于和数据可密码进行比较
     * @param rawPassword 登录密码
     * @return 加密后密码
     */
    public String encode(CharSequence rawPassword) {
        return MD5.encrypt(rawPassword.toString());
    }

    /**
     * 对比数据库密码
     * @param rawPassword 原密码
     * @param encodedPassword 数据库密码
     * @return boolean
     */
    public boolean matches(CharSequence rawPassword, String encodedPassword) {
        return encodedPassword.equals(this.encode(rawPassword));
    }
}
